home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung / Power-Programmierung (Tewi)(1994).iso / magazine / dbms_mag / 9107 / embay_c / llist.cpp < prev    next >
C/C++ Source or Header  |  1991-03-13  |  1KB  |  63 lines

  1. // == llist.cpp === member functions for LinkedList class ===========
  2. //                  Wes Peterson
  3.  
  4. #include "llist.h"
  5.  
  6. LinkedList::~LinkedList(void)   // destructor
  7. {
  8.     ll_node *this_node = first_node;
  9.  
  10.     while(this_node != NULL)    {
  11.         first_node = this_node->next_node;
  12.         delete this_node;
  13.         this_node = first_node;
  14.         }
  15.  
  16. void LinkedList::add_node(ll_node *new_node)
  17. {
  18.     if(curr_node == NULL)    {
  19.         new_node->prev_node = NULL;
  20.         if(first_node != NULL)    {
  21.             new_node->next_node = first_node;
  22.             first_node->prev_node = new_node;
  23.             }
  24.         else    {
  25.             new_node->next_node = NULL;
  26.             last_node = new_node;
  27.             }
  28.         first_node = new_node;
  29.         }
  30.     else    {
  31.         new_node->next_node = curr_node->next_node;
  32.         new_node->prev_node = curr_node;
  33.         if(curr_node == last_node)
  34.             last_node = new_node;
  35.         else
  36.             curr_node->next_node->prev_node = new_node;
  37.         curr_node->next_node = new_node;
  38.     }
  39.     curr_node = new_node;
  40. }
  41.  
  42. ll_node *LinkedList::get_next_node(void)
  43. {
  44.     if(curr_node == NULL)
  45.         curr_node = first_node;
  46.     else
  47.         curr_node = curr_node->next_node;
  48.  
  49.     return(curr_node);
  50. }
  51.  
  52. ll_node *LinkedList::get_prev_node(void)
  53. {
  54.     if(curr_node == NULL)
  55.         curr_node = last_node;
  56.     else
  57.         curr_node = curr_node->prev_node;
  58.  
  59.     return(curr_node);
  60. }
  61.  
  62.